You can pass a constant of type ATSUCursorMovementType to the functions ATSUNextCursorPosition, ATSUPreviousCursorPosition, ATSURightwardCursorPosition, and ATSULeftwardCursorPosition to represent the unit distance that the cursor has moved. These functions use this information to calculate the edge offset in backing store memory that corresponds to the resulting cursor position.
enum {
kATSUByCharacter = 0,
kATSUByCluster = 1,
kATSUByWord = 2
};
typedef int ATSUCursorMovementType;
Constant descriptions
kATSUByCharacter
Indicates that the cursor has been moved 2 bytes (a Unicode character).
kATSUByCluster
Indicates that the cursor has been moved by a cluster, as defined by Unicode. A group of characters is a cluster based both on the static properties of the characters involved (defined by the Unicode consortium) and the behavior of the specific font you are using with those characters.
kATSUByWord
Indicates that the cursor has been moved by a word, as defined by Unicode. A word does not include trailing punctuation or white space.